package BasicEntity
{
	public class MovingEntity extends BaseGameEntity
	{
		/**
		 * 速度
		 */
		public var Velocity:Vector2D;
		/**
		 * 朝向
		 * 注意：朝向和速度并不一定总是一致的，像人，但我们这里是描述火车一样的东东，它的速度和朝向总是一致的
		 */
		public var Heading:Vector2D;
		/**
		 * 垂直于朝向的向量
		 */
		public var Side:Vector2D;
		public var Mass:Number;
		/**
		 * 最大速度
		 */
		public var MaxSpeed:Number;
		/**
		 * 最大转速
		 */
		public var MaxTurnRate:Number;
		/**
		 * 最大受力
		 */
		public var MaxForce:Number;
		
		public function MovingEntity(_pos:Vector2D,
		                             _velocity:Vector2D,
									 _head:Vector2D,
									 _mass:Number,
									 _maxSpeed:Number,
									 _maxTurnRate:Number,
									 _maxForce:Number
									 )
		{
			Velocity = _velocity;
			Pos = _pos;
			Heading = _head;
			Side = _head.Perp;
			Mass = _mass;
			MaxSpeed = _maxSpeed;
			MaxForce = _maxForce;
			MaxTurnRate = _maxTurnRate;
		}
	}
}